﻿

//
//初始时为 10110, 变换 1 次后变为 11101, 变换 2 次后变为 10011, 变换 3 次后变为 11010。
//
//
//输入的第一行包含两个整数
//�
//,
//�
//n, t, 分别表示 01 串的长度和变换的次数。
//
//第二行包含一个长度为
//�
//n 的 01 串。
//
//s1`=s1;
//s2`=s1^s2

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
    ll n, t;//数据范围
    cin >> n >> t;
    string s;
    cin >> s;
    ll x = 1;
    while (x < n) x <<= 1;//位运算快
    //这里可以有一个周期就是n长度的串的周期是比它大的最近的2^x
    t %= x;//取模，减法超时
    while (t--) {
        for (int i = n - 1; i >= 1; i--) s[i] = (s[i - 1] - '0') ^ (s[i] - '0') + '0';
        //选择从后往前遍历：只对一个数组完成多次操作即可，后往前防止覆盖
    }
    cout << s << endl;;
}